#ifndef CHARACTER_HPP_
#define CHARACTER_HPP_


#include <vector>
#include <aerDefs.hpp>
#include <view/aerCamera.hpp>

#include "Model.hpp"
#include "Skeleton.hpp"

#include "utils/debug_renderer.hpp"


///
/// The Character class represent an instance of a character
/// 
class Character 
{   
  private:
    Model    m_model;
    Skeleton m_skeleton;
    
    //std::vector<ActiveSequence_t> m_activeSequences;//
    aer::Matrix4x4* m_skinningMatrices;
    
    DebugRenderer m_dbg;//
    
    
  public:
    Character();
    ~Character();
    
    void init(const char* modelName, const char* sklName);
    
    void update();
    void render(aer::Camera *camera);
};

#endif //CHARACTER_HPP_
